package com.duoduo.剑指Offer;

import com.duoduo.ListNode;

/**
 * @program: algorithm
 * @description: 合并两个排序的链表23
 * 输入两个递增排序的链表，合并这两个链表并使新链表中的节点仍然是递增排序的。
 *
 * 示例1：
 *
 * 输入：1->2->4, 1->3->4
 * 输出：1->1->2->3->4->4
 *
 * @author: chaidl  ！
 * @create: 2022-05-25 20:29
 */
public class 合并两个排序的链表23 {
	/**
	 * 双指针
	 * @param l1
	 * @param l2
	 * @return
	 */
	public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
		if (l1==null){
			return l2;
		}
		if (l2 == null) {
		    return l1;
		}
		ListNode node=new ListNode(0);
		ListNode resultNode=node;
		while (l1!=null && l2!= null){
			if (l1.val< l2.val){
				resultNode.next=l1;
				l1=l1.next;
			}else {
				resultNode.next = l2;
				l2=l2.next;
			}
			resultNode=resultNode.next;
		}
		if (l1 != null){
			resultNode.next = l1;
		}
		if (l2 != null){
			resultNode.next = l2;
		}
		return node.next;
	}
}
